package com.wangdf;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;

import junit.framework.TestCase;
import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.Template;
import freemarker.template.TemplateExceptionHandler;

public class FreeTest2 extends TestCase {
	
	private String dir = "D:\\freemarker";
	
	@SuppressWarnings("unchecked")
	public void testFreemarker(){
		try {
			Configuration cfg = new Configuration();
			
			//从什么地方加载freemarker模板文件
			cfg.setDirectoryForTemplateLoading(new File(dir));
			
			//设置对象包装器
			cfg.setObjectWrapper(new DefaultObjectWrapper());
			
			//设置异常处理器
			cfg.setTemplateExceptionHandler(TemplateExceptionHandler.IGNORE_HANDLER);
			
			//定义Template对象
			Template template = cfg.getTemplate("test.ftl");
			
			//定义数据
			@SuppressWarnings("rawtypes")
			Map root = new HashMap();
			root.put("abc", "世界，你好");
			
			//定义输出
			PrintWriter out 
				= new PrintWriter(
					new BufferedWriter(
						new FileWriter(dir+"\\out.txt")
					)
				);
			
			//****最重要的就是这一步，动态加载“世界，你好”到abc所在的位置
			template.process(root, out);
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
}